package com.baizhi.util;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

public class JDBCUtil {
    public static DataSource ds;
    static {
        try {
            //1.加载配置文件
            //Properties类是用来操作properties文件的
            Properties properties = new Properties();

            //使用ClassLoader加载配置文件，获取字节输入流
            //java中class.forName和classLoader都可用来对类进行加载。properties一般放配置信息的,存放的是键值对格式.如userName=root 这样便于管理!
            //jdbcUtil.class 得到的是class JdbcUtil ,class对象是java.lang.Class<T>这个类生成的对象,每个类都有一个class对象
            //getResourceAsStream(),返回的是InputStream 对象
            InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("druid.properties");
            //props.load(in) ,加载进来,进行一行一行的读取
            //还可以用java.util.ResourceBundle的类来读取properties文件.ResourceBundle.getBundle("文件名").getString("键");
            properties.load(is);

            //2初始化连接对象
            ds = DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 获取连接池对象
     */
    public static DataSource getDataSource(){
        return ds;
    }

    /**
     * 获取连接Connection对象
     */
    public static Connection getConnection() throws SQLException{
        return ds.getConnection();
    }


}
